from rest_framework import serializers
from .models import User

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('id', 'username', 'role', 'password')
        extra_kwargs = {'password': {'write_only': True}}  # 密码仅写入，不返回

    def create(self, validated_data):
        # 只创建一次用户，使用模型类调用 create_user 方法
        user = User.objects.create_user(
            username=validated_data['username'],
            password=validated_data['password'],
            role=validated_data.get('role', 'user')  # 默认为普通用户
        )
        # 直接返回创建好的用户实例，无需再次创建
        return user